home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / Visual Cafe Pro v1.0 / TUTORIAL.BIN / ImageButton.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-12-16  |  2.9 KB  |  89 lines

  1. package symantec.itools.awt;
  2.  
  3. import java.awt.AWTException;
  4. import java.awt.Component;
  5. import java.awt.Dimension;
  6. import java.awt.Graphics;
  7. import java.awt.Image;
  8. import java.awt.MediaTracker;
  9. import java.awt.image.FilteredImageSource;
  10. import java.net.URL;
  11.  
  12. public class ImageButton extends ButtonBase {
  13.    protected boolean scale = false;
  14.    private URL url = null;
  15.    private Image enabledImage = null;
  16.    private Image disabledImage = null;
  17.    private boolean centerMode = true;
  18.  
  19.    public void setImageURL(URL var1) {
  20.       this.url = var1;
  21.       Image var2 = ((Component)this).getToolkit().getImage(this.url);
  22.       MediaTracker var3 = new MediaTracker(this);
  23.  
  24.       try {
  25.          var3.addImage(var2, 0);
  26.          var3.waitForAll();
  27.       } catch (InterruptedException var4) {
  28.       }
  29.  
  30.       try {
  31.          if (var3.isErrorAny()) {
  32.             throw new AWTException("error loading image " + var2.toString());
  33.          }
  34.       } catch (AWTException var5) {
  35.          System.err.println("Error loading image " + var2.toString());
  36.          return;
  37.       }
  38.  
  39.       this.enabledImage = var2;
  40.       this.disabledImage = ((Component)this).createImage(new FilteredImageSource(var2.getSource(), new ImageButtonDisableFilter()));
  41.    }
  42.  
  43.    public URL getImageURL() {
  44.       return this.url;
  45.    }
  46.  
  47.    public void setScaleMode(boolean var1) {
  48.       this.scale = var1;
  49.       ((Component)this).invalidate();
  50.    }
  51.  
  52.    public boolean getScaleMode() {
  53.       return this.scale;
  54.    }
  55.  
  56.    public void setCenterMode(boolean var1) {
  57.       this.centerMode = var1;
  58.       ((Component)this).invalidate();
  59.    }
  60.  
  61.    public boolean getCenterMode() {
  62.       return this.centerMode;
  63.    }
  64.  
  65.    public void paint(Graphics var1) {
  66.       super.paint(var1);
  67.       Dimension var2 = ((Component)this).size();
  68.       int var3 = super.bevel + 1 + super.pressedAdjustment;
  69.       int var4 = super.bevel + 1 + super.pressedAdjustment;
  70.       int var5 = var2.width - 1;
  71.       int var6 = var2.height - 1;
  72.       Image var7 = ((Component)this).isEnabled() ? this.enabledImage : this.disabledImage;
  73.       if (var7 != null) {
  74.          if (this.centerMode && !this.scale) {
  75.             var3 += (var5 - var7.getWidth(this)) / 2;
  76.             var4 += (var6 - var7.getHeight(this)) / 2;
  77.          }
  78.  
  79.          if (var7 != null) {
  80.             if (this.scale) {
  81.                var1.drawImage(var7, var3, var4, var5 - super.bevel * 2, var6 - super.bevel * 2, this);
  82.             } else {
  83.                var1.drawImage(var7, var3, var4, this);
  84.             }
  85.          }
  86.       }
  87.    }
  88. }
  89.